package com.wuliu.system.domain.dto.app;

import com.wuliu.common.annotation.NotLessThanZero;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;

/**
 * @author realue
 * @version 1.0
 * @date 2023-11-04 10:54
 */
@Data
@ApiModel(description = "揽收请求实体类")
public class RecOrderPreDto {

    @NotBlank(message = "运单号不能为空")
    @ApiModelProperty(value = "运单号")
    private String orderNo;

    @ApiModelProperty(value = "客户编号/月结账号")
    private String feeAccno;

    @ApiModelProperty(value = "发货公司/客户名称")
    private String srcCompName;

    @NotBlank(message = "发货人不能为空")
    @ApiModelProperty(value = "发货人")
    private String srcName;

    @NotBlank(message = "发货人电话不能为空")
    @ApiModelProperty(value = "发货人电话")
    private String srcTel;

    @ApiModelProperty(value = "发货国家")
    private String srcCountry;

    @NotBlank(message = "发货省不能为空")
    @ApiModelProperty(value = "发货省")
    private String srcProvince;

    @NotBlank(message = "发货城市不能为空")
    @ApiModelProperty(value = "发货城市")
    private String srcCity;

    @NotBlank(message = "发货区县不能为空")
    @ApiModelProperty(value = "发货区县")
    private String srcDistrict;

    @NotBlank(message = "发货街道不能为空")
    @ApiModelProperty(value = "发货街道")
    private String srcStreet;

    @NotBlank(message = "发货地址不能为空")
    @ApiModelProperty(value = "发货地址")
    private String srcAddr;

    @NotBlank(message = "收货站点编号不能为空")
    @ApiModelProperty(value = "收货站点编号")
    private String dstDeptNo;

    @NotBlank(message = "收货站点名称不能为空")
    @ApiModelProperty(value = "收货站点名称")
    private String dstDeptName;

    @NotBlank(message = "目的站大字不能为空")
    @ApiModelProperty(value = "目的站大字")
    private String dstBigWord;

    @ApiModelProperty(value = "收货公司")
    private String dstCompName;

    @NotBlank(message = "收货人不能为空")
    @ApiModelProperty(value = "收货人")
    private String dstName;

    @NotBlank(message = "收货人电话不能为空")
    @ApiModelProperty(value = "收货人电话")
    private String dstTel;

    @ApiModelProperty(value = "收货国家")
    private String dstCountry;

    @NotBlank(message = "收货省不能为空")
    @ApiModelProperty(value = "收货省")
    private String dstProvince;

    @NotBlank(message = "收货市不能为空")
    @ApiModelProperty(value = "收货市")
    private String dstCity;

    @NotBlank(message = "收货区/县不能为空")
    @ApiModelProperty(value = "收货区/县")
    private String dstDistrict;

    @NotBlank(message = "收货街道不能为空")
    @ApiModelProperty(value = "收货街道")
    private String dstStreet;

    @NotBlank(message = "收货地址不能为空")
    @ApiModelProperty(value = "收货地址")
    private String dstAddr;

    @NotBlank(message = "托寄物品不能为空")
    @ApiModelProperty(value = "托寄物品")
    private String cargoName;

    @ApiModelProperty(value = "重量")
    private BigDecimal weight;

    @NotLessThanZero(message = "实际重量必须大于0")
    @ApiModelProperty(value = "实际重量")
    private BigDecimal actWeight;

    @NotLessThanZero(message = "件数必须大于0")
    @ApiModelProperty(value = "件数")
    private Integer cargoCnt;

    @NotLessThanZero(message = "运费必须大于0")
    @ApiModelProperty(value = "运费")
    private BigDecimal fee;

    @Range(min = 1,max = 3,message = "付款方式不正确")
    @ApiModelProperty(value = "付款方式 1寄付 2到付 3寄付月结")
    private Integer paySide;

    @ApiModelProperty(value = "代收货款")
    private BigDecimal cod;

    @ApiModelProperty(value = "声明价值")
    private BigDecimal declaredValue;

    @ApiModelProperty(value = "快递类型 1.标准快递")
    private Integer cargoType;

    @ApiModelProperty(value = "签回单1是 0否")
    private Integer receiptFlag;

    @ApiModelProperty(value = "回单编号")
    private String receiptNo;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "发送签收短信 0.否 1.是")
    private Integer sendSignSms;
}
